<?php
/**
 * 15、设计模式学习-观察者模式
 * 显示页面控制器
 * 2019年12月27日12:24:10
 */
namespace Application\Controller;

class ViewObserverController extends BaseController
{
    // 没有使用观察者模式，显示页面后，显示问候语或者当前时间
    public function noUseObserver()
    {
        echo '主体内容<hr />';
        // 显示问候语
        $welcome = new \Application\Common\Observer\NoUseObserver\Welcome();
        $welcome -> index();
        // 显示当前时间
        $times = new \Application\Common\Observer\NoUseObserver\Times();
        $times -> getCurrentTime();
        // 总结：没有使用观察者模式时，当事件发生后，程序侵入式编程、代码耦合相对较为严重、不易扩展
    }
    // 使用观察者模式，显示页面后，显示问候语或者当前时间
    public function useObserver()
    {
        // 主体事件：显示页面
        echo '主体内容<hr />';
        // 观察位点
        new \Application\Common\Observer\UseObserver\ViewOD();
        // 总结：使用观察者模式，当事件发生后，代码调用简洁、非侵入式编程、松耦合易于扩展
    }
}
